/**
 * 通用工具函数 - 兼容原项目ruoyi.js
 */

/**
 * 参数处理
 * @param params 参数
 */
export function tansParams(params: Record<string, any>): string {
  let result = ''
  for (const propName of Object.keys(params)) {
    const value = params[propName]
    const part = encodeURIComponent(propName) + "="
    if (value !== null && value !== "" && typeof(value) !== "undefined") {
      if (typeof value === 'object') {
        for (const key of Object.keys(value)) {
          if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
            const params = propName + '[' + key + ']'
            const subPart = encodeURIComponent(params) + "="
            result += subPart + encodeURIComponent(value[key]) + "&"
          }
        }
      } else {
        result += part + encodeURIComponent(value) + "&"
      }
    }
  }
  return result
}

/**
 * 解析字符串为空的情况
 * @param str 字符串
 */
export function parseStrEmpty(str: string | number | null | undefined): string {
  if (!str || str == "undefined" || str == "null") {
    return ""
  }
  return str.toString()
}

/**
 * 验证是否为blob格式
 * @param data 数据
 */
export function blobValidate(data: any): boolean {
  return data.type !== 'application/json'
}
